<html>
<head>
<title>IYOCGwP Book 1 - Glossary</title>
<link rel="stylesheet" href="inventbook.css" type="text/css" media="all">
</head>
<body>
<h2>Glossary</h2>
<p><span class='term'>absolute value</span> - The positive form of a negative number. For example, the absolute value of -2 is 2. The absolute value of a positive number is simply the positive number itself.</p>
<p><span class='term'>AI</span> - see, artificial intelligence</p>
<p><span class='term'>algorithm</span> - A series of instructions to compute something.</p>
<p><span class='term'>applications</span> - A program that is run by an operating system. See also, program.</p>
<p><span class='term'>arguments</span> - The values that are passed for parameters in a function call.</p>
<p><span class='term'>artificial intelligence</span> - Code or a program that can intelligent make decisions (for example, decisions when playing a game) in response to user actions.</p>
<p><span class='term'>ASCII art</span> - Using text characters and spaces to draw simple pictures.</p>
<p><span class='term'>assembly language</span> - The simplest programming language. Assembly language instructions are a human-readable form that can directly translate into machine code instructions.</p>
<p><span class='term'>assignment operator</span> - The = sign. Used to assign values to variables.</p>
<p><span class='term'>assignment statement</span> - A line of code that assigns a value to a variable using the assignment operator. This defines, that is, creates the variable when used with a new variable. For example: <span class='m'>spam = 42</span></p>
<p><span class='term'>asterisk</span> - The * symbol. The asterisk is used as a multiplication sign.</p>
<p><span class='term'>augmented assignment operator</span> - The <span class='m'>+=</span>, <span class='m'>-=</span>, <span class='m'>*=</span>, and <span class='m'>/=</span> operators. The assignment <span class='m'>spam += 42</span> is equivalent to <span class='m'>spam = spam + 42</span>.</p>
<p><span class='term'>block</span> - A group of lines of code with the same amount of indentation. Blocks can contain other blocks of greater indentation inside them.</p>
<p><span class='term'>boolean</span> - A data type with only two values, <span class='m'>True</span> and <span class='m'>False</span>.</p>
<p><span class='term'>boolean operator</span> - Boolean operators include <span class='m'>and</span>, <span class='m'>or</span>, and <span class='m'>not</span>.</p>
<p><span class='term'>break statement</span> - The <span class='m'>break</span> statement immediately jumps out of the current <span class='m'>while</span> or <span class='m'>for</span> loop to the first line after the end of the loop's block.</p>
<p><span class='term'>brute force</span> - In cryptography, to try every possible key in order to decrypt an encrypted message.</p>
<p><span class='term'>caesar cipher</span> - A simple substitution cipher in which each symbol is replaced by one and only one other symbol.</p>
<p><span class='term'>cartesian coordinate system</span> - A system of coordinates used to identify exact points in some area of space (such as the monitor, or on a game board). Cartesian coordinates systems commonly have two coordinates, one of the X-axis (that is, the horizontal left-right axis) and one of the Y-axis (that is, the vertical up-down axis).</p>
<p><span class='term'>case-sensitivity</span> - Declaring different capitalizations of a name to mean different things. Python is a case-sensitive language, so <span class='m'>spam</span>, <span class='m'>Spam</span>, and <span class='m'>SPAM</span> are three different variables.</p>
<p><span class='term'>central processing unit</span> - CPU, the main chip that your computer uses to process software instructions.</p>
<p><span class='term'>cipher</span> - In cryptography, an algorithm used to encrypt and decrypt messages with a certain key.</p>
<p><span class='term'>ciphertext</span> - In cryptography, the encrypted form of a message.</p>
<p><span class='term'>comment</span> - Part of the source code that is ignored by the Python interpreter. Comments are there to remind the programmer about something about the code. Comments begin with a # sign and go on for the rest of the line.</p>
<p><span class='term'>commutative property</span> - The property of addition and multiplication that describes how the order of the numbers being added or multiplied does not matter. For example, 2 + 4 = 6, and 4 + 2 = 6. Also, 3 * 5 = 15, and 5 * 3 = 15.</p>
<p><span class='term'>comparison operators</span> - The operators <span class='m'>&lt;</span> ("less than"), <span class='m'>&lt;=</span> ("less than or equal to"), <span class='m'>&gt;</span> ("greater than"), <span class='m'>&gt;=</span> ("greater than or equal to"), <span class='m'>==</span> ("equal to"), and <span class='m'>!=</span> ("not equal too").</p>
<p><span class='term'>condition</span> - Another name for an expression, one that exists in an <span class='m'>if</span> or <span class='m'>while</span> statement that evaluates to a boolean <span class='m'>True</span> or <span class='m'>False</span> value.</p>
<p><span class='term'>constant variables</span> - Variables whose values do not change. Constant variables are often used because it is easier to type the name of the variable then the value that they store. As a convention, constant variable names are typed in all uppercase letters.</p>
<p><span class='term'>convention</span> - A way of doing things that is not required, but is usually done to make a task easier.</p>
<p><span class='term'>conversion specifiers</span> - The text inside a string that makes use of string interpolation. The most common conversion specifier is <span class='m'>%s</span>, which specifies that the variable it interpolates should be converted to a string.</p>
<p><span class='term'>cpu</span> - see, Central Processing Unit</p>
<p><span class='term'>cryptanalysis</span> - The science of breaking secret codes and ciphers.</p>
<p><span class='term'>cryptography</span> - The science of making secret codes and ciphers.</p>
<p><span class='term'>data types</span> - A category of values. Some types in Python are: strings, integers, floats, boolean, lists, and NoneType.</p>
<p><span class='term'>decrementing</span> - To decrease a numeric value by one.</p>
<p><span class='term'>decrypting</span> - To convert an encrypted message to the readable plaintext version.</p>
<p><span class='term'>def statement</span> - A statement that defines a new function. The def statement begins with the <span class='m'>def</span> keyword, followed by the function name and a set of parentheses, with any number of parameter names delimited by commas. At the end is a : colon character. For example, <span class='m'>def funcName(param1, param2):</span></p>
<p><span class='term'>delimit</span> - To separate with. For example, the string <span class='m'>'cats,dogs,mice'</span> is delimited with commas.</p>
<p><span class='term'>dictionary</span> - A container data type that can store other values. Values are accessed by a key. For example, <span class='m'>spam['foo'] = 42</span> assigns the key <span class='m'>'foo'</span> of the <span class='m'>spam</span> dictionary the value <span class='m'>42</span>.</p>
<p><span class='term'>else statement</span> - An <span class='m'>else</span> statement always follows an <span class='m'>if</span> statement, and the code inside the else-block is executed if the <span class='m'>if</span> statement's condition was <span class='m'>False</span>.</p>
<p><span class='term'>empty list</span> - The list <span class='m'>[]</span>, which contains no values and has a length of zero. See also, empty string.</p>
<p><span class='term'>empty string</span> - The string <span class='m'>''</span>, which contains no characters and has a length of zero. See also, empty list.</p>
<p><span class='term'>encrypting</span> - To convert a message into a form that resembles garbage data, and cannot be understood except by someone who knows the ciphr and key used to encrypt the message.</p>
<p><span class='term'>escape character</span> - Escape characters allow the programmer to specify characters in Python that are difficult or impossible to type into the source code. All escape characters are preceeded by a \ forward backslash character. For example, <span class='m'>\n</span> displays a newline character when it is printed.</p>
<p><span class='term'>evaluate</span> - Reducing an expression down to a single value. The expression <span class='m'>2 + 3 + 1</span> evaluates to the value <span class='m'>6</span>.</p>
<p><span class='term'>execute</span> - The Python interpreter executes lines of code, by evaluating any expressions or performing the task that the code does.</p>
<p><span class='term'>exit</span> - When a program ends. "Terminate" means the same thing.</p>
<p><span class='term'>expression</span> - Values and function calls connected by operators. Expressions can be evaluated down to a single value.</p>
<p><span class='term'>file editor</span> - A program used to type in or change files, including files of Python source code. The IDLE program has a file editor that you use to type in your programs.</p>
<p><span class='term'>floating point numbers</span> - Numbers with fractions or decimal points are not integers. The numbers <span class='m'>3.5</span> and <span class='m'>42.1</span> and <span class='m'>5.0</span> are floating point numbers.</p>
<p><span class='term'>flow chart</span> - A chart that informally shows the flow of execution for a program, and the main events that occur in the program and in what order.</p>
<p><span class='term'>flow control statements</span> - Statements that cause the flow of execution to change, often depending on conditions. For example, a function call sends the execution to the beginning of a function. Also, a loop causes the execution to iterate over a section of code several times.</p>
<p><span class='term'>flow of execution</span> - The order that Python instructions are executed. Usually the Python interpreter will start at the top of a program and go down executing one line at a time. Flow control statements can move the flow of execution to different parts of code in the program.</p>
<p><span class='term'>function</span> - A collection of instructions to be executed when the function is called. Functions also have a return value, which is the value that a function call evaluates to.</p>
<p><span class='term'>function call</span> - A command to pass execution to the code contained inside a function, also passing arguments to the function. Function calls evaluate to the return value of the function.</p>
<p><span class='term'>garbage data</span> - Random data or values that have no meaning.</p>
<p><span class='term'>global scope</span> - The scope of variables outside of all functions. Python code in the global scope cannot see variables inside any function's local scope.</p>
<p><span class='term'>hard-coding</span> - Using a value in a program, instead of using a variable. While a variable could allow the program to change, by hard-coding a value in a program, the value stays permanently fixed unless the source code is changed.</p>
<p><span class='term'>hardware</span> - The parts of a computer that you can touch, such as the keyboard, monitor, case, or mouse. See also, software.</p>
<p><span class='term'>higher-level programming languages</span> - Programming languages that humans can understand, such as Python. An interpreter can translate a higher-level language into machine code, which is the only language computers can understand.</p>
<p><span class='term'>IDLE</span> - Interactive DeveLopment Environment. IDLE is a program that helps you type in your programs and games.</p>
<p><span class='term'>I/O</span> - Input/Output. This is a term used in reference of the data that is sent into a program (input) and that is produced by the program (output).</p>
<p><span class='term'>immutable sequence</span> - A container data type that cannot have values added or deleted from it. In Python, the two immutable sequence data types are strings and tuples.</p>
<p><span class='term'>import statement</span> -  A line of code with the <span class='m'>import</span> keyword followed by the name of a module. This allows you to call any functions that are contained in the module.</p>
<p><span class='term'>incrementing</span> - To increase the value of a numeric variable by one.</p>
<p><span class='term'>indentation</span> - The indentation of a line of code is the number of spaces before the start of the actual code. Indentation in Python is used to mark when blocks begin and end. Indentation is usually done in multiples of four spaces.</p>
<p><span class='term'>index</span> - An integer between square brackets that is placed at the end of an ordered container variable (most often a list) to evaluate to a specific item in that container. The first index starts at 0, not 1. For example, if <span class='m'>spam</span> refers to the list <span class='m'>['a', 'b', 'c', 'd']</span>, then <span class='m'>spam[2]</span> evaluates to <span class='m'>'c'</span>.</p>
<p><span class='term'>index error</span> - An index error occurs when you attempt to access an index that does not exist. This is much like using a variable that does not exist. For example, if <span class='m'>spam</span> refers to the list <span class='m'>['a', 'b', 'c', 'd']</span>, then <span class='m'>spam[10]</span> would cause an index error.</p>
<p><span class='term'>input</span> - The text or data that the user or player enters into a program, mostly from the keyboard.</p>
<p><span class='term'>integer division</span> - Division that ignores any remainder and rounds the evaluated number down. Integer division occurs when both numbers in the division expression are integers. For example, <span class='m'>20 / 7</span> evaluates to the integer <span class='m'>6</span>, even though the answer is 6.666 or 6 remainder 2.</p>
<p><span class='term'>integers</span> - Integers are whole numbers like <span class='m'>4</span> and <span class='m'>99</span> and <span class='m'>0</span>. The numbers <span class='m'>3.5</span> and <span class='m'>42.1</span> and <span class='m'>5.0</span> are not integers.</p>
<p><span class='term'>interactive shell</span> - A part of IDLE that lets you execute Python code one line at a time. It allows you to immediately see what value the expression you type in evaluates to.</p>
<p><span class='term'>interpreter</span> - A program that translates instructions written in a higher-level programming language (such as Python) to machine code that the computer can understand and execute.</p>
<p><span class='term'>iteration</span> - A single run through of the code in a loop's block. For example, if the code in a while-block is executed ten times before execution leaves the loop, we say that there were ten iterations of the while-block's code.</p>
<p><span class='term'>key-value pairs</span> - In dictionary data types, keys are values that are used to access the values in a dictionary, much like a list's index is used to access the values in a list. Unlike lists, dictionary keys can be of any data type, not just integers.</p>
<p><span class='term'>keys</span> - In dictionaries, keys are the indexes used to </p>
<p><span class='term'>keys</span> - In cryptography, a specific value (usuaully a number) that determines how a cipher encrypts a message. To decrypt the message, you must know both the cipher and the key value that was used.</p>
<p><span class='term'>list</span> - The main container data type, lists can contain several other values, including other lists. Values in lists are accessed by an integer index between square brackets. For example, if <span class='m'>spam</span> is assigned the list <span class='m'>['a', 'b', 'c']</span>, then <span class='m'>spam[2]</span> would evaluate to <span class='m'>'c'</span>.</p>
<p><span class='term'>list concatenation</span> - Combining the contents of one list to the end of another with the + operator. For example, <span class='m'>[1, 2, 3] + ['a', 'b', 'c']</span> evaluates to <span class='m'>[1, 2, 3, 'a', 'b', 'c']</span>.</p>
<p><span class='term'>local scope</span> - The scope of variables inside a single functions. Python code inside a function can read the value of variables in the global scope, but any changes or new variables made will only exist while execution is inside that function call.</p>
<p><span class='term'>loop</span> - A block of code inside a loop (after a <span class='m'>for</span> or <span class='m'>while</span> statement) will repeatedly execute until some condition is met.</p>
<p><span class='term'>loop unrolling</span> - Replacing code inside a loop with multiple copies of that code. For example, instead of <span class='m'>for i in range(10): print 'Hello'</span>, you could unroll that loop by having ten lines of <span class='m'>print 'Hello'</span></p>
<p><span class='term'>machine code</span> - The language that the computer's CPU understands. Machine code instructions are series of ones and zeros, and is generally unreadable by humans. Interpreters (such as the Python interpreter) translate a higher-level language into machine code.</p>
<p><span class='term'>methods</span> - Functions that are associated with values of a data type. For example, the string method <span class='m'>upper()</span> would be invoked on a string like this: <span class='m'>'Hello'.upper()</span></p>
<p><span class='term'>module</span> - A separate Python program that can be included in your programs so that you can make use of the functions in the module.</p>
<p><span class='term'>modulus operator</span> - The "remainder" operator that is represented with a % percent sign. For example, while 20 / 7 is 6 with a remainder of 2, <span class='m'>20 % 7</span> would evaluate to <span class='m'>2</span>.</p>
<p><span class='term'>mutable sequence</span> - A container data type that is ordered and can have values added or removed from it. Lists are a mutable sequence data type in Python.</p>
<p><span class='term'>negative numbers</span> - All numbers less than 0. Negative numbers have a minus sign in front of them to differentiate them from positive numbers, for example, -42 or -10.</p>
<p><span class='term'>nested loops</span> - Loops that exist inside other loops.</p>
<p><span class='term'>None</span> - The only value in the NoneType data type. "None" is often used to represent the lack of a value.</p>
<p><span class='term'>operating system</span> - A large program that runs other software programs (called applications) the same way on different hardware. Windows, Mac OS, and Linux are examples of operating systems.</p>
<p><span class='term'>operators</span> - Operators connect values in expressions. Operators include <span class='m'>+</span>, <span class='m'>-</span>, <span class='m'>*</span>, <span class='m'>/</span>, <span class='m'>and</span>, and <span class='m'>or</span></p>
<p><span class='term'>ordinal</span> - In ASCII, the number that is represented by an ASCII character. For example, the ASCII character <span class='m'>'A'</span> has the ordinal 65.</p>
<p><span class='term'>origin</span> - In cartesian coordinate systems, the point at the coordinates 0, 0.</p>
<p><span class='term'>OS</span> - see, operating system</p>
<p><span class='term'>output</span> - The text that a program produces for the user. For example, <span class='m'>print</span> statements produce output.</p>
<p><span class='term'>overwrite</span> - To replace a value stored in a variable with a new value.</p>
<p><span class='term'>parameter</span> - A variable that is specified to have a value passed in a function call. For example, the statement <span class='m'>def spam(eggs, cheese)</span> defines a function with two parameters named <span class='m'>eggs</span> and <span class='m'>cheese</span>.</p>
<p><span class='term'>pie chart</span> - A circular chart that shows percentage portions as portions of the entire circle.</p>
<p><span class='term'>plaintext</span> - The decrypted, human-readable form of a message.</p>
<p><span class='term'>player</span> - A person who plays the computer game.</p>
<p><span class='term'>positive numbers</span> - All numbers equal to or greater than 0.</p>
<p><span class='term'>pound sign</span> - The # sign. Pound signs are used to begin comments.</p>
<p><span class='term'>print statement</span> - The <span class='m'>print</span> keyword followed by a value that is to be displayed on the screen.</p>
<p><span class='term'>program</span> - A collection of instructions that can process input and produce output when run by computer.</p>
<p><span class='term'>programmer</span> - A person who writes computer programs.</p>
<p><span class='term'>reference</span> - Rather than containing the values themselves, list variables actually contain references to lists. For example, <span class='m'>spam = [1, 2, 3]</span> assigns <span class='m'>spam</span> a reference to the list. <span class='m'>cheese = spam</span> would copy the reference to the list <span class='m'>spam</span> refers to. Any changes made to the <span class='m'>cheese</span> or <span class='m'>spam</span> variable would be reflected in the other variable.</p>
<p><span class='term'>return statement</span> - The <span class='m'>return</span> followed by a single value, which is what the call to the function the return statement is in will evaluate to.</p>
<p><span class='term'>return value</span> - The value that a call to the function will evaluate to. You can specify what the return value is with the <span class='m'>return</span> keyword followed by the value. Functions with no return statement will return the value <span class='m'>None</span>.</p>
<p><span class='term'>scope</span> - See, local scope and global scope.</p>
<p><span class='term'>sequence</span> - A sequence data type is an ordered container data type, and have a "first" or "last" item. The sequence data types in Python are lists, tuples, and strings. Dictionaries are not sequences, they are unordered. See also, unordered.</p>
<p><span class='term'>shell</span> - see, interactive shell</p>
<p><span class='term'>simple substitution ciphers</span> - </p>
<p><span class='term'>slice</span> - A subset of values in a list. These are accessed using the : colon character in between the square brackets. For example, if <span class='m'>spam</span> has the value <span class='m'>['a', 'b', 'c', 'd', 'e', 'f']</span>, then the slice <span class='m'>spam[2:4]</span> has the value <span class='m'>['c', 'd']</span>. Similar to a substring.</p>
<p><span class='term'>software</span> - see, program</p>
<p><span class='term'>source code</span> - The text that you type in to write a program.</p>
<p><span class='term'>statement</span> - A command or line of Python code that does not evaluate to a value.</p>
<p><span class='term'>string concatenation</span> - Combining two strings together with the + operator to form a new string. For example, <span class='m'>'Hello ' + 'World!'</span> evaluates to the string <span class='m'>'Hello World!'</span></p>
<p><span class='term'>string formatting</span> - Another term for string interpolation.</p>
<p><span class='term'>string interpolation</span> - Using conversion specifiers in a string as place holders for other values. Using string interpolation is a more convenient alternative to string concatenation. For example, <span class='m'>'Hello, %s. Are you going to %s on %s?' % (name, activity, day)</span> evaluates to the string <span class='m'>'Hello, Albert. Are you going to program on Thursday?'</span>, if the variables have those corresponding values.</p>
<p><span class='term'>string</span> - A value made up of text. Strings are typed in with a single quote ' or double " on either side. For example, <span class='m'>'Hello'</span></p>
<p><span class='term'>substring</span> - A subset of a string value. For example, if <span class='m'>spam</span> is the string <span class='m'>'Hello'</span>, then the substring <span class='m'>spam[1:4]</span> is <span class='m'>'ell'</span>. Similar to a list slice.</p>
<p><span class='term'>symbols</span> - In cryptography, the individual characters that are encrypted.</p>
<p><span class='term'>syntax error</span> - An error that occurs when the Python interpreter does not understand the source code.</p>
<p><span class='term'>terminate</span> - When a program ends. "Exit" means the same thing.</p>
<p><span class='term'>tracing</span> - To follow through the lines of code in a program in the order that they would execute.</p>
<p><span class='term'>truth tables</span> - Tables showing every possible combination of </p>
<p><span class='term'>tuple</span> - A container data type similar to a list. Tuples are immutable sequence data types, meaning that they cannot have values added or removed from them. For example, <span class='m'>(1, 2, 'cats', 'hello')</span> is a tuple of four values.</p>
<p><span class='term'>type</span> - see, data types</p>
<p><span class='term'>unordered</span> - In container data types, unordered data types do not have a "first" or "last" value contained inside them, they simply contain values. Dictionaries are the only unordered data type in Python. Lists, tuples, and strings are ordered data types. See also, sequence.</p>
<p><span class='term'>user</span> - The person using the program.</p>
<p><span class='term'>value</span> - A specific instance of a data type. <span class='m'>42</span> is a value of the integer type. <span class='m'>'Hello'</span> is a value of the string type.</p>
<p><span class='term'>variables</span> - A container that can store a value. List variables contain references to lists.</p>
<p><span class='term'>while loop statement</span> - The <span class='m'>while</span> keyword, followed by a condition, ending with a : colon character. The <span class='m'>while</span> statement marks the beginning of a <span class='m'>while</span> loop.</p>
<p><span class='term'>x-axis</span> - In cartesian coordinate systems, the horizontal (left-right) coordinate axis.</p>
<p><span class='term'>y-axis</span> - In cartesian coordinate systems, the vertical (up-down) coordinate axis.</p>


</body>
</html>